// 线索相关的公共字典和格式化函数

/**
 * 线索状态映射
 */
export const statusMap = {
  1: '未跟进',
  2: '跟进中',
  3: '已分配',
  4: '已转商机',
  5: '伪线索'
};

/**
 * 线索状态选项（用于下拉选择器）
 */
export const statusOptions = [
  { label: "待分配", value: 1 },
  { label: "待跟进", value: 2 },
  { label: "跟进中", value: 3 },
  { label: "伪线索", value: 4 },
  { label: "转为商机", value: 5 },
];

/**
 * 渠道来源选项
 */
export const channelOptions = [
  { label: "线上活动", value: 1 },
  { label: "推广介绍", value: 2 },
];

/**
 * 意向学科映射
 */
export const subjectMap = {
  1: 'Java',
  2: 'Python',
  3: '前端',
  4: '大数据',
  5: '人工智能',
  6: 'AI鸿蒙开发',
  7: 'AI测试',
  8: 'AI运维',
  9: 'AI智能应用开发(Java)',
  'AI智能应用开发(Java)': 'AI智能应用开发(Java)'
};

/**
 * 意向等级映射
 */
export const levelMap = {
  1: '近期学习',
  2: '打算学习(考虑中)',
  3: '进行了解',
  4: '打酱油'
};

/**
 * 格式化线索状态
 * @param {number|string} value - 状态值
 * @returns {string} 格式化后的状态文本
 */
export const formatStatus = (value) => {
  return statusMap[value] || '';
};

/**
 * 格式化意向学科
 * @param {number|string} value - 学科值
 * @returns {string} 格式化后的学科文本
 */
export const formatSubject = (value) => {
  return subjectMap[value] || (value || '-');
};

/**
 * 格式化意向等级
 * @param {number|string} value - 等级值
 * @returns {string} 格式化后的等级文本
 */
export const formatLevel = (value) => {
  return levelMap[value] || (value || '-');
};

/**
 * 格式化时间
 * @param {string|Date} dateString - 日期字符串或日期对象
 * @returns {string} 格式化后的时间文本
 */
export const formatDateTime = (dateString) => {
  if (!dateString) return '';
  const date = new Date(dateString);
  if (isNaN(date.getTime())) return dateString;
  return date.toLocaleString('zh-CN', {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit'
  });
};

/**
 * 根据意向等级返回对应颜色样式
 * @param {number|string} level - 意向等级值
 * @returns {object} 包含颜色样式的对象
 */
export const getLevelColorStyle = (level) => {
  // 根据意向等级返回对应颜色
  const colorMap = {
    1: { color: "#409EFF" }, // 近期学习 - 蓝色
    2: { color: "#67C23A" }, // 打算学习(考虑中) - 绿色
    3: { color: "#E6A23C" }, // 进行了解 - 橙色
    4: { color: "#F56C6C" }  // 打酱油 - 红色
  };

  // 处理字符串类型的level
  if (typeof level === "string") {
    if (level.includes("近期")) return colorMap[1];
    if (level.includes("打算")) return colorMap[2];
    if (level.includes("了解")) return colorMap[3];
  }

  return colorMap[level] || {};
};

/**
 * 格式化性别
 * @param {number} value - 性别值 (1:男, 2:女)
 * @returns {string} 格式化后的性别文本
 */
export const formatGender = (value) => {
  return value === 1 ? '男' : value === 2 ? '女' : '';
};

/**
 * 处理跟进记录数据，确保每个字段都存在
 * @param {Array} records - 跟进记录数组
 * @returns {Array} 处理后的跟进记录数组
 */
export const processTrackRecords = (records) => {
  if (!Array.isArray(records)) {
    return [];
  }
  
  return records.map((record) => ({
    level: record.level || '',
    subject: record.subject || '',
    assignName: record.assignName || '',
    createTime: record.createTime || record.createDate || '',
    nextTime: record.nextTime || record.nextDate || '',
    record: record.record || record.content || '',
  }));
};